
/**
 * 系统常量定义类。
 * <p>
 * 用于集中管理项目中的常量，包括用户相关、分页设置、时间单位等。
 * 通过接口嵌套分组，便于维护和查找。
 */
package com.example.project.utils;

import com.example.project.entity.VoteRecord;


/**
 * 项目全局常量接口。
 * 包含各类常量分组接口。
 */
public interface Constants {

    /**
     * 默认分页大小。
     */
    int DEFAULT_SIZE = 30;

    /**
     * 用户相关常量分组。
     * 包含角色、默认头像、状态、验证码等相关键名。
     */
    interface User{
        String ROLE_ADMIN = "role_admin";
        String ROLE_NORMAL = "role_normal";
        String DEFAULT_AVATAR = "https://s1.ax1x.com/2020/09/10/wGlRa9.png";
        String DEFAULT_STATE = "1";
        String KEY_CAPTCHA_CONTENT = "key_captcha_content_";
        String KEY_EMAIL_CODE_CONTENT = "key_email_code_content_";
        String KEY_EMAIL_SEND_IP = "key_email_send_ip_";
        String KEY_EMAIL_SEND_ADDRESS = "key_email_send_address_";
        String KEY_TOKEN = "key_token_";
        String COOKIE_TOKEN_KEY = "SOB_BLOG_TOKEN";
    }

    /**
     * 系统设置相关常量分组。
     */
    interface Settings{
        String MANAGER_ACCOUNT_INIT_STATE = "manager_account_init_state";
    }

    /**
     * 分页相关常量分组。
     * 包含默认页码、默认每页数量、最小页大小等。
     */
    interface Page{
        int DEFAULT_PAGE = 1;
        int DEFAULT_SIZE = 4;
        int MIN_SIZE =  10;
    }


    /**
     * 单位毫秒
     */
    /**
     * 时间相关常量分组（单位：毫秒）。
     * 包含分钟、小时、天等常用时间单位。
     */
    interface TimeValueInMillions{
        long MIN = 60 * 1000;
        long HOUR = 60 * MIN;
        long HOUR_2 = 60 * MIN * 2;
        long DAY = 24 * HOUR;
        long WEEK = 7 * DAY;
        long MONTH = 30 * DAY;
    }
    /**
     * 单位是秒
     */
    interface TimeValueInSecond{
        int MIN = 60;
        int HOUR = 60 * MIN;
        int HOUR_2 = 60 * MIN * 2;
        int DAY = 24 * HOUR;
        int WEEK = 7 * DAY;
        int MONTH = 30 * DAY;
    }


    interface VoteRecord{

    }



}
